package hash.medium;

import java.util.HashMap;
import java.util.Map;

public class SubarraySumEqualsK_560 {

    public int subarraySum(int[] nums, int k) {
        Map<Integer, Integer> map = new HashMap<>();
        map.put(0, 1);
        int sum = 0, cnt = 0;
        for (int num : nums) {
            sum += num;
            if (map.containsKey(sum - k))
                cnt += map.get(sum - k);
            map.put(sum, map.getOrDefault(sum, 0) + 1);
        }
        return cnt;
    }

    public static void main(String[] args) {
        SubarraySumEqualsK_560 sse = new SubarraySumEqualsK_560();
        System.out.println(sse.subarraySum(new int[]{1, 2, 3}, 3));
    }
}
